<?php
    class database extends PDO {

        public function  __construct()
        {

                parent::__construct(
                        config::loginifo, 
                        config::user,
                        config::pass, 
                        array(PDO::ATTR_PERSISTENT=>true));

        }
           

        public function insert(array $value,$tablica,array $kolumnyT)
        {
            // <editor-fold defaultstate="collapsed" desc="Statement1">
            $kolumnyT2 = $kolumnyT;
            $kolumny = implode(', ', $kolumnyT);
            $ile = count($kolumnyT2);
            for($i=0;$i<$ile;$i++)
                {
                   $kolumnyT2[$i]=':'. $kolumnyT2[$i];
                }
             $kolumny2 = implode(', ', $kolumnyT2);
            $stmt1 = $this->prepare(
               'INSERT INTO '.$tablica.' ('.$kolumny.')
                
                VALUES('.$kolumny2.')'
                    );
            // </editor-fold>
            // <editor-fold defaultstate="collapsed" desc="BindParams1">
            for($i=0;$i<$ile;$i++)
                {
              $stmt1->bindValue($kolumnyT2[$i], $value[$i]);
                }
              
            // </editor-fold>            
            // <editor-fold defaultstate="collapsed" desc="Execute">
            if(!$stmt1->execute())
            {
                echo 'Nie udało się dodać rekordu do bazy';
            }
           
            // </editor-fold>
        }

        public function update($nazwa_tabeli,array $wartosc,$warunek_where)
        {

        }

        public function SelectOne($tabela, $kolumna, array $warunkiT)
        {
           
            $warunki = implode(' AND ', array_keys($warunkiT));
            $statement = $this->prepare('SELECT ' . $kolumna. ' FROM ' . $tabela            . ' WHERE ' . $warunki);
            $parameter = 1;

            foreach ($warunkiT as $warunki)
            {
                $statement->bindValue($parameter, $warunki);

                ++$parameter;
            }

            if (!$statement->execute())
            {
                echo "Nie udało się wybrać rekordu z bazy";
            }
            
            return $statement->fetchAll();
        }
        public function Select($tabela, array $kolumnyT, array $warunkiT)
        {
            $kolumny = implode(', ', $kolumnyT);
            $warunki = implode(' AND ', array_keys($warunkiT));

            $statement = $this->prepare('SELECT ' . $kolumny. ' FROM ' . $tabela . ' WHERE ' . $warunki);
            $parameter = 1;

            foreach ($warunkiT as $warunki)
            {
                $statement->bindValue($parameter, $warunki);

                ++$parameter;
            }

            if (!$statement->execute())
            {
                echo "Nie udało się wybrać rekordu z bazy";
            }
            
            return $statement->fetchAll();
        }
        public function ZwrocID($tabela)
        {
            $statement = $this->prepare('SELECT id FROM ' . $tabela);
            if (!$statement->execute())
            {
                echo"Nie udało się wybrać rekordów z bazy";
            }

            return $statement->fetchAll(PDO::FETCH_COLUMN,0);
        }
        public function ZwrocKolumny($tabela,$kolumnyT)
        {
            $kolumna = implode(', ', $kolumnyT);
            $statement = $this->prepare('SELECT ' . $kolumna. ' FROM ' . $tabela);
            $parameter = 1;


            if (!$statement->execute())
            {
                echo"Nie udało się wybrać rekordów z bazy";
            }

            return $statement->fetchAll();
        }

    }
   
?>
